﻿using System;
using SF.Code.Extension.ComputerLanguages;

namespace SG.Lang.Dry.Mirrors
{
    [Serializable]
    public enum TimeType : byte
    {
        Dependent = 0,
        CreatedOn,
    }

    [Serializable]
    public struct ElementRecord
    {
        public readonly Guid Guid;

        public readonly DateTime Time;

        public readonly TimeType TimeType;

        public readonly Visibility Visibility;

        public readonly ElementKind Kind;

        public ElementRecord(ref Guid guid, ElementKind kind, DateTime? time = null, TimeType timeType = TimeType.Dependent, Visibility visibility = Visibility.Default)
        {
            Guid = guid;
            Kind = kind;
            Time = time ?? DateTime.MinValue;
            TimeType = timeType;
            Visibility = visibility;
        }
    }
}
